Для повышения безопасности входа на сервер через SSH с использованием ключей и паролей можно включить двухфакторную аутентификацию с помощью Google Authenticator
Шаг 1. Установка PAM-модуля Google Authenticator
Откройте терминал и введите команды:
sudo apt-get update
sudo apt-get install libpam-google-authenticator
Шаг 2. Настройка 2FA для пользователя
Запустите настройку для пользователя, под которым подключаетесь по SSH:
google-authenticator
Ответьте на вопросы, обычно лучше выбрать положительные варианты для обновления ключей и ограничений.
Шаг 3. Изменение PAM-конфигурации
Откройте файл /etc/pam.d/sshd для редактирования:
sudo nano /etc/pam.d/sshd
Добавьте в начало или конец файла строчку:
auth required pam_google_authenticator.so
Сохраните изменения (Ctrl+O) и выйдите (Ctrl+X).
Шаг 4. Конфигурация SSH сервера для 2FA с ключами и паролями
Отредактируйте файл /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
Добавьте или замените следующие строки:
ChallengeResponseAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactive password,keyboard-interactive
Это позволит использовать 2FA как с аутентификацией по ключу, так и с паролем.
Сохраните и выйдите из редактора.
Шаг 5. Перезагрузка SSH сервиса
Чтобы изменения вступили в силу, перезапусти сервис SSH:
sudo systemctl restart sshd
Внимание
- Перед перезапуском SSH сервиса лучше открыть дополнительное SSH-соединение, чтобы не потерять доступ к серверу в случае ошибки.
- Теперь при подключении через SSH сначала будет проходить проверка по ключу или паролю, а затем запрашиваться код из приложения Google Authenticator или совместимого.